﻿using System;
using System.Collections.Generic;
using System.Text;

namespace JESAI.DistributedLock
{
    /// <summary>
    /// 某些分布式锁在某些死锁条件下会抛出的异常。请注意，即使在某些情况下抛出此异常的锁也无法检测到所有死锁情况。
    /// </summary>
    [Serializable]
    public sealed class DeadlockException : InvalidOperationException
    {
        /// <summary>
        ///构造一个带有默认消息的<see cref="DeadlockException"/>的新实例
        /// </summary>
        public DeadlockException() : this("A deadlock occurred") { }

        /// <summary>
        /// 使用给定的 <paramref name="message"/>构造一个<see cref="DeadlockException"/>实例  
        /// </summary>
        public DeadlockException(string message) : base(message) { }

        /// <summary>
        /// 使用给定的<paramref name="message"/>和 <paramref name="innerException"/>构造一个<see cref="DeadlockException"/>实例。
        /// </summary>
        public DeadlockException(string message, Exception innerException) : base(message, innerException) { }

#if NET8_0_OR_GREATER
    [Obsolete] //调用过时的构造函数
#endif
        private DeadlockException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
    }
}
